package automat;

public class MyTjekBilletautomat {
	public static void main(String[] arg){
		Billetautomat automat = new Billetautomat();
		int antalfejl = 0;
		int retur;
		// Køb billet selvom der ikke er penge nok
			//Preconditions
			retur=0;
			automat.montørLogin("1234");
			if (automat.erMontør()!=true) {System.out.println("automat.montørLogin(1234"); return;}
			automat.nulstil();
			if (automat.getAntalBilletterSolgt()!=0) {System.out.println("automat.returpenge()"); return;}
			automat.returpenge();
			if (automat.getBalance()!=0) {System.out.println("automat.returpenge()"); return;}
			automat.montørLogin("");
			if (automat.erMontør()!=false){System.out.println("automat.montørLogin()"); return;}

			//Test
			automat.udskrivBillet();

			// Postcondition
			retur=automat.getBalance();
			if (retur<0){
			antalfejl++;
			System.out.println(" Fejl: Der er negativ saldo på maskinen efter køb af billet\n"+retur);			
		}
		
		
		// Montør kan ændre billetpris til negativ
			
			//Preconditions
			retur=0;
			automat.montørLogin("1234");
			if (automat.erMontør()!=true) {System.out.println("automat.montørLogin(1234"); return;}
			automat.nulstil();
			if (automat.getAntalBilletterSolgt()!=0) {System.out.println("automat.returpenge()"); return;}
			automat.returpenge();
			
			//Test
			automat.setBilletpris(-10);
		
			// Postcondition
			retur=automat.getBilletpris();
			System.out.println("Billet prisen er"+automat.getBilletpris());
			if (retur<0){
				antalfejl++;
				System.out.println(" Fejl: Prisen på en billet er negativ\n"+retur);	
			}
				
		// Alle kan ændre billetpris
			
			//Preconditions
			retur=0;
			automat.montørLogin("1234");
			if (automat.erMontør()!=true) {System.out.println("automat.montørLogin(1234"); return;}
			automat.nulstil();
			if (automat.getAntalBilletterSolgt()!=0) {System.out.println("automat.returpenge()"); return;}
			automat.returpenge();
			if (automat.getBalance()!=0) {System.out.println("automat.returpenge()"); return;}
			automat.montørLogin("");
			if (automat.erMontør()!=false){System.out.println("automat.montørLogin()"); return;}
			
			//Test
			automat.setBilletpris(20);
			
			//Postconditions
			retur=automat.getBilletpris();
			if (retur!=10){
				antalfejl++;
				System.out.println(" Fejl: Du har ændret billetprisen uden at være logget ind som montør\n"+retur);
			}									
		// Balancen er negativ
			
			//Preconditions
			retur=0;
			automat.montørLogin("1234");
			if (automat.erMontør()!=true) {System.out.println("automat.montørLogin(1234"); return;}
			automat.nulstil();
			if (automat.getAntalBilletterSolgt()!=0) {System.out.println("automat.returpenge()"); return;}
			automat.returpenge();
			if (automat.getBalance()!=0) {System.out.println("automat.returpenge()"); return;}
			automat.montørLogin("");
			if (automat.erMontør()!=false){System.out.println("automat.montørLogin()"); return;}
			
			//Test
			automat.indsætPenge(-10);
			
			//Postconditions
			retur=automat.getBalance();
			if (retur<0){
				antalfejl++;
				System.out.println("Fejl: indsæt negativt beløb"+retur);
			}
			
		// Ved ændring af billet pris bliver getTotals resultat forkert
			//Preconditions
			retur=0;
			automat.montørLogin("1234");
			if (automat.erMontør()!=true) {System.out.println("automat.montørLogin(1234"); return;}
			automat.nulstil();
			if (automat.getAntalBilletterSolgt()!=0) {System.out.println("automat.returpenge()"); return;}
			automat.returpenge();
			if (automat.getBalance()!=0) {System.out.println("automat.returpenge()"); return;}
			automat.montørLogin("");
			if (automat.erMontør()!=false){System.out.println("automat.montørLogin()"); return;}
			
			//Test
			
			
			//Postconditions
			
			
		// Udskriver om der er fejl i programmet	
			if (antalfejl>0)
			System.out.println("Automaten har " +antalfejl+ " fejl, ØV!!!");
			else
			System.out.println("Automaten er fejlfri, HURRA!!!' ");
	}
}
